package com.principles.behavior.responsibility;

import com.sun.xml.internal.ws.wsdl.writer.document.soap.Body;

/**
 * @Description 责任链模式————是一种处理请求的模式，他让多个处理器都有机会处理改请求，直到其中某个处理成功为止。责任链模式把多个处理器串成链，然后让请求在链上传递
 *              优点：责任链模式将请求和处理分开，请求者不用知道谁去处理，处理者也不用知道请求的全貌，可以提高系统的灵活性
 *              缺点：会降低系统性能，每个请求都需要从链头 走向链尾 不适合调试
 * @Date 2025/1/28 11:07
 **/
public class ResponsibilityPattern {
    public static void main(String[] args) {
        Handler leader = new Leader();
        Handler boss = new Boss();
        leader.nextHandler = boss;
        leader.process(10);
    }
}

abstract class Handler{
    protected Handler nextHandler;

    protected void setNextHandler(Handler handler){
        this.nextHandler = handler;
    }
    public abstract void process(Integer info);
}
class Leader extends Handler{

    @Override
    public void process(Integer info) {
        if(info>0&&info<11){
            System.out.println("Leader处理");
        }else {
            nextHandler.process(info);
        }
    }
}

class Boss extends Handler{

    @Override
    public void process(Integer info) {
        System.out.println("boss处理");
    }
}